package com.monolithiot.sso.dao.mapper;

import com.monolithiot.sso.common.entity.User;
import com.monolithiot.sso.dao.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 2018/12/10 Create by 郭文梁
 * UserMapper
 * 用户数据库访问层（ORM映射层）
 *
 * @author 郭文梁
 * @date 2018/12/10
 */
@Repository
public interface UserMapper extends BaseMapper<User> {
    /**
     * 检查用户的（name, phoneNumber, mobileNumber, email） 在数据库中是否存在
     *
     * @param user 用户
     * @return 字符串 存在的字段:中文
     */
    String checkExists(@Param("user") User user);

    /**
     * 检查用户的（name, phoneNumber, mobileNumber, email） 在数据库中是否存在（排除指定用户）
     *
     * @param user      用户
     * @param excludeId 被排除的用户ID
     * @return 字符串 存在的字段:中文
     */
    String checkExistsExclude(@Param("user") User user, @Param("excludeId") Integer excludeId);

    /**
     * 登录查询 查询用户的(name, phoneNumber, mobileNumber, email)==account && password=password
     *
     * @param account  账户名
     * @param password 密码
     * @return User entity
     */
    User selectForLogin(@Param("account") String account, @Param("password") String password);
}
